package com.group9.service;

import com.group9.dto.Message;
import com.group9.dto.PageInfo;
import com.group9.pojo.CommentResponse;
import com.group9.pojo.ResourceComment;

import java.util.List;

/**
 * Created by Lcouncillor on 2020/6/5.
 */
public interface CommentService {

    /**
     * 添加一级评论
     * @param resourceComment
     * @return
     */
    Integer addFirstLevelComment(ResourceComment resourceComment);

    /**
     * 添加二级评论
     * @param commentResponse
     * @return
     */
    Integer addSecondLevelComment(CommentResponse commentResponse);

    /**
     * 添加三级评论
     * @param commentResponse
     * @return
     */
    Integer addThirdLevelComment(CommentResponse commentResponse);


    /**
     * 按照倒序查找的请求页的一级评论
     * @param
     * @return
     */
    PageInfo showFirstLevelCommentByIdAndLimit(Integer resourceId, Integer currentPage);

    /**
     * 多文件上传是以同时分批上传的方式
     *
     * 更新一级评论，添加新的图片
     * @param
     * @return
     */
    Integer saveFirstLevelCommentPic(String id, String picUrl);

    /**
     * 点赞或者取消赞
     * 返回1：点赞
     * 返回-1：取消赞
     *
     * @param id
     * @param userId
     * @return
     */
    Integer saveCommentThumbUp(String id, String userId);

    /**
     * 通过一级评论id查找相应评论
     * @param id
     * @return
     */
    ResourceComment showResourceCommentById(String id);

    /**
     * 为一级评论添加指向二级评论的responseId
     * @param id responseId
     * @return
     */
    Integer saveResourceCommentResponse(String id, String responseId);

    /**
     * 通过id查找二级评论
     * @param id
     * @return
     */
    CommentResponse showCommentResponseById(String id);

    /**
     * 为二级评论添加指向三级评论的responseId
     * @param id responseId
     * @return
     */
    Integer saveCommentResponseResponseId(String id, String responseId);

    /**
     * 消息提醒
     * @param
     * @return
     */
    Integer commentMessageAlert(String receiverId);

}
